<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/Python-3.6.2/Include/pyerrors.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/Python-3.6.2/Include/pyerrors.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="True">       1:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="macros_noref.html#_UHlfRVJST1JTX0hfMA__"><span class="b">Py_ERRORS_H</span></a>
<a name="2" /><span class="True">       2:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlfRVJST1JTX0hfMA__"><span class="b">Py_ERRORS_H</span></a>
<a name="3" /><span class="False">       3:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">__cplusplus</span>
<a name="4" /><span class="False">       4:</span> <span class="m">extern</span> <span class="e">&quot;C&quot;</span> <span class="f">{</span>
<a name="5" /><span class="True">       5:</span> <span class="f">#</span><span class="n">endif</span>
<a name="6" /><span class="True">       6:</span> 
<a name="7" /><span class="True">       7:</span> <span class="k">/* Error objects */</span>
<a name="8" /><span class="True">       8:</span> 
<a name="9" /><span class="True">       9:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">Py_LIMITED_API</span>
<a name="10" /><span class="True">      10:</span> <span class="k">/* PyException_HEAD defines the initial segment of every exception class. */</span>
<a name="11" /><span class="True">      11:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_ref.html#_UHlFeGNlcHRpb25fSEVBRF8w"><span class="b">PyException_HEAD</span></a> <a href="macros_ref.html#_UHlPYmplY3RfSEVBRF8w"><span class="b">PyObject_HEAD</span></a> <span class="b">PyObject</span> <span class="f">*</span><span class="b">dict</span><span class="f">;\
</span>             <span class="b">PyObject</span> <span class="f">*</span><span class="b">args</span><span class="f">;</span> <span class="b">PyObject</span> <span class="f">*</span><span class="b">traceback</span><span class="f">;\
</span>             <span class="b">PyObject</span> <span class="f">*</span><span class="b">context</span><span class="f">;</span> <span class="b">PyObject</span> <span class="f">*</span><span class="b">cause</span><span class="f">;\
</span>             <span class="m">char</span> <span class="b">suppress_context</span><span class="f">;</span>
<a name="15" /><span class="True">      15:</span> 
<a name="16" /><span class="True">      16:</span> <span class="m">typedef</span> <span class="m">struct</span> <span class="f">{</span>
<a name="17" /><span class="True">      17:</span>     <a href="macros_ref.html#_UHlFeGNlcHRpb25fSEVBRF8w"><span class="b">PyException_HEAD</span></a>
<a name="18" /><span class="True">      18:</span> <span class="f">}</span> <span class="b">PyBaseExceptionObject</span><span class="f">;</span>
<a name="19" /><span class="True">      19:</span> 
<a name="20" /><span class="True">      20:</span> <span class="m">typedef</span> <span class="m">struct</span> <span class="f">{</span>
<a name="21" /><span class="True">      21:</span>     <a href="macros_ref.html#_UHlFeGNlcHRpb25fSEVBRF8w"><span class="b">PyException_HEAD</span></a>
<a name="22" /><span class="True">      22:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">msg</span><span class="f">;</span>
<a name="23" /><span class="True">      23:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">filename</span><span class="f">;</span>
<a name="24" /><span class="True">      24:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">lineno</span><span class="f">;</span>
<a name="25" /><span class="True">      25:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">offset</span><span class="f">;</span>
<a name="26" /><span class="True">      26:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">text</span><span class="f">;</span>
<a name="27" /><span class="True">      27:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">print_file_and_line</span><span class="f">;</span>
<a name="28" /><span class="True">      28:</span> <span class="f">}</span> <span class="b">PySyntaxErrorObject</span><span class="f">;</span>
<a name="29" /><span class="True">      29:</span> 
<a name="30" /><span class="True">      30:</span> <span class="m">typedef</span> <span class="m">struct</span> <span class="f">{</span>
<a name="31" /><span class="True">      31:</span>     <a href="macros_ref.html#_UHlFeGNlcHRpb25fSEVBRF8w"><span class="b">PyException_HEAD</span></a>
<a name="32" /><span class="True">      32:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">msg</span><span class="f">;</span>
<a name="33" /><span class="True">      33:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">name</span><span class="f">;</span>
<a name="34" /><span class="True">      34:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">path</span><span class="f">;</span>
<a name="35" /><span class="True">      35:</span> <span class="f">}</span> <span class="b">PyImportErrorObject</span><span class="f">;</span>
<a name="36" /><span class="True">      36:</span> 
<a name="37" /><span class="True">      37:</span> <span class="m">typedef</span> <span class="m">struct</span> <span class="f">{</span>
<a name="38" /><span class="True">      38:</span>     <a href="macros_ref.html#_UHlFeGNlcHRpb25fSEVBRF8w"><span class="b">PyException_HEAD</span></a>
<a name="39" /><span class="True">      39:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">encoding</span><span class="f">;</span>
<a name="40" /><span class="True">      40:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">object</span><span class="f">;</span>
<a name="41" /><span class="True">      41:</span>     <span class="b">Py_ssize_t</span> <span class="b">start</span><span class="f">;</span>
<a name="42" /><span class="True">      42:</span>     <span class="b">Py_ssize_t</span> <span class="b">end</span><span class="f">;</span>
<a name="43" /><span class="True">      43:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">reason</span><span class="f">;</span>
<a name="44" /><span class="True">      44:</span> <span class="f">}</span> <span class="b">PyUnicodeErrorObject</span><span class="f">;</span>
<a name="45" /><span class="True">      45:</span> 
<a name="46" /><span class="True">      46:</span> <span class="m">typedef</span> <span class="m">struct</span> <span class="f">{</span>
<a name="47" /><span class="True">      47:</span>     <a href="macros_ref.html#_UHlFeGNlcHRpb25fSEVBRF8w"><span class="b">PyException_HEAD</span></a>
<a name="48" /><span class="True">      48:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">code</span><span class="f">;</span>
<a name="49" /><span class="True">      49:</span> <span class="f">}</span> <span class="b">PySystemExitObject</span><span class="f">;</span>
<a name="50" /><span class="True">      50:</span> 
<a name="51" /><span class="True">      51:</span> <span class="m">typedef</span> <span class="m">struct</span> <span class="f">{</span>
<a name="52" /><span class="True">      52:</span>     <a href="macros_ref.html#_UHlFeGNlcHRpb25fSEVBRF8w"><span class="b">PyException_HEAD</span></a>
<a name="53" /><span class="True">      53:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">myerrno</span><span class="f">;</span>
<a name="54" /><span class="True">      54:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">strerror</span><span class="f">;</span>
<a name="55" /><span class="True">      55:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">filename</span><span class="f">;</span>
<a name="56" /><span class="True">      56:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">filename2</span><span class="f">;</span>
<a name="57" /><span class="False">      57:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">MS_WINDOWS</span>
<a name="58" /><span class="False">      58:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">winerror</span><span class="f">;</span>
<a name="59" /><span class="True">      59:</span> <span class="f">#</span><span class="n">endif</span>
<a name="60" /><span class="True">      60:</span>     <span class="b">Py_ssize_t</span> <span class="b">written</span><span class="f">;</span>   <span class="k">/* only for BlockingIOError, -1 otherwise */</span>
<a name="61" /><span class="True">      61:</span> <span class="f">}</span> <span class="b">PyOSErrorObject</span><span class="f">;</span>
<a name="62" /><span class="True">      62:</span> 
<a name="63" /><span class="True">      63:</span> <span class="m">typedef</span> <span class="m">struct</span> <span class="f">{</span>
<a name="64" /><span class="True">      64:</span>     <a href="macros_ref.html#_UHlFeGNlcHRpb25fSEVBRF8w"><span class="b">PyException_HEAD</span></a>
<a name="65" /><span class="True">      65:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">value</span><span class="f">;</span>
<a name="66" /><span class="True">      66:</span> <span class="f">}</span> <span class="b">PyStopIterationObject</span><span class="f">;</span>
<a name="67" /><span class="True">      67:</span> 
<a name="68" /><span class="True">      68:</span> <span class="k">/* Compatibility typedefs */</span>
<a name="69" /><span class="True">      69:</span> <span class="m">typedef</span> <span class="b">PyOSErrorObject</span> <span class="b">PyEnvironmentErrorObject</span><span class="f">;</span>
<a name="70" /><span class="False">      70:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">MS_WINDOWS</span>
<a name="71" /><span class="False">      71:</span> <span class="m">typedef</span> <span class="b">PyOSErrorObject</span> <span class="b">PyWindowsErrorObject</span><span class="f">;</span>
<a name="72" /><span class="True">      72:</span> <span class="f">#</span><span class="n">endif</span>
<a name="73" /><span class="True">      73:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* !Py_LIMITED_API */</span>
<a name="74" /><span class="True">      74:</span> 
<a name="75" /><span class="True">      75:</span> <span class="k">/* Error handling definitions */</span>
<a name="76" /><span class="True">      76:</span> 
<a name="77" /><span class="True">      77:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">void</span><span class="f">)</span> <span class="b">PyErr_SetNone</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="78" /><span class="True">      78:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">void</span><span class="f">)</span> <span class="b">PyErr_SetObject</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="79" /><span class="True">      79:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">Py_LIMITED_API</span>
<a name="80" /><span class="True">      80:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">void</span><span class="f">)</span> <span class="b">_PyErr_SetKeyError</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="81" /><span class="True">      81:</span> <span class="f">#</span><span class="n">endif</span>
<a name="82" /><span class="True">      82:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">void</span><span class="f">)</span> <span class="b">PyErr_SetString</span><span class="f">(</span>
<a name="83" /><span class="True">      83:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">exception</span><span class="f">,</span>
<a name="84" /><span class="True">      84:</span>     <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">string</span>   <span class="k">/* decoded from utf-8 */</span>
<a name="85" /><span class="True">      85:</span>     <span class="f">)</span><span class="f">;</span>
<a name="86" /><span class="True">      86:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyErr_Occurred</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="87" /><span class="True">      87:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">void</span><span class="f">)</span> <span class="b">PyErr_Clear</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="88" /><span class="True">      88:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">void</span><span class="f">)</span> <span class="b">PyErr_Fetch</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">*</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="f">*</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="89" /><span class="True">      89:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">void</span><span class="f">)</span> <span class="b">PyErr_Restore</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="90" /><span class="True">      90:</span> <span class="f">#</span><span class="n">if</span> <span class="f">!</span><span class="b">defined</span><span class="f">(</span><span class="b">Py_LIMITED_API</span><span class="f">)</span> <span class="f">||</span> <span class="b">Py_LIMITED_API</span><span class="f">+</span><span class="c">0</span> <span class="f">&gt;=</span> <span class="c">0x03030000</span>
<a name="91" /><span class="True">      91:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">void</span><span class="f">)</span> <span class="b">PyErr_GetExcInfo</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">*</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="f">*</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="92" /><span class="True">      92:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">void</span><span class="f">)</span> <span class="b">PyErr_SetExcInfo</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="93" /><span class="True">      93:</span> <span class="f">#</span><span class="n">endif</span>
<a name="94" /><span class="True">      94:</span> 
<a name="95" /><span class="False">      95:</span> <span class="f">#</span><span class="n">if</span> <span class="b">defined</span><span class="f">(</span><span class="b">__clang__</span><span class="f">)</span> <span class="f">||</span> \
<a name="96" /><span class="False">      96:</span>     <span class="f">(</span><span class="b">defined</span><span class="f">(</span><span class="b">__GNUC_MAJOR__</span><span class="f">)</span> <span class="f">&amp;&amp;</span> \
<a name="97" /><span class="False">      97:</span>      <span class="f">(</span><span class="f">(</span><span class="b">__GNUC_MAJOR__</span> <span class="f">&gt;=</span> <span class="c">3</span><span class="f">)</span> <span class="f">||</span> \
<a name="98" /><span class="False">      98:</span>       <span class="f">(</span><span class="b">__GNUC_MAJOR__</span> <span class="f">==</span> <span class="c">2</span><span class="f">)</span> <span class="f">&amp;&amp;</span> <span class="f">(</span><span class="b">__GNUC_MINOR__</span> <span class="f">&gt;=</span> <span class="c">5</span><span class="f">)</span><span class="f">)</span><span class="f">)</span>
<a name="99" /><span class="False">      99:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_ref.html#_X1B5X05PX1JFVFVSTl8w"><span class="b">_Py_NO_RETURN</span></a> <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">__noreturn__</span><span class="f">)</span><span class="f">)</span>
<a name="100" /><span class="True">     100:</span> <span class="f">#</span><span class="n">else</span>
<a name="101" /><span class="True">     101:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_ref.html#_X1B5X05PX1JFVFVSTl8w"><span class="b">_Py_NO_RETURN</span></a>
<a name="102" /><span class="True">     102:</span> <span class="f">#</span><span class="n">endif</span>
<a name="103" /><span class="True">     103:</span> 
<a name="104" /><span class="True">     104:</span> <span class="k">/* Defined in Python/pylifecycle.c */</span>
<a name="105" /><span class="True">     105:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">void</span><span class="f">)</span> <span class="b">Py_FatalError</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">message</span><span class="f">)</span> <a href="macros_ref.html#_X1B5X05PX1JFVFVSTl8w"><span class="b">_Py_NO_RETURN</span></a><span class="f">;</span>
<a name="106" /><span class="True">     106:</span> 
<a name="107" /><span class="True">     107:</span> <span class="f">#</span><span class="n">if</span> <span class="b">defined</span><span class="f">(</span><a href="macros_ref.html#_UHlfREVCVUdfMA__"><span class="b">Py_DEBUG</span></a><span class="f">)</span> <span class="f">||</span> <span class="b">defined</span><span class="f">(</span><span class="b">Py_LIMITED_API</span><span class="f">)</span>
<a name="108" /><span class="True">     108:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_X1B5RXJyX09DQ1VSUkVEXzA_"><span class="b">_PyErr_OCCURRED</span></a><span class="f">(</span><span class="f">)</span> <span class="b">PyErr_Occurred</span><span class="f">(</span><span class="f">)</span>
<a name="109" /><span class="False">     109:</span> <span class="f">#</span><span class="n">else</span>
<a name="110" /><span class="False">     110:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_X1B5RXJyX09DQ1VSUkVEXzA_"><span class="b">_PyErr_OCCURRED</span></a><span class="f">(</span><span class="f">)</span> <span class="f">(</span><a href="macros_ref.html#_UHlUaHJlYWRTdGF0ZV9HRVRfMA__"><span class="b">PyThreadState_GET</span></a><span class="f">(</span><span class="f">)</span><span class="f">-&gt;</span><span class="b">curexc_type</span><span class="f">)</span>
<a name="111" /><span class="True">     111:</span> <span class="f">#</span><span class="n">endif</span>
<a name="112" /><span class="True">     112:</span> 
<a name="113" /><span class="True">     113:</span> <span class="k">/* Error testing and normalization */</span>
<a name="114" /><span class="True">     114:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">int</span><span class="f">)</span> <span class="b">PyErr_GivenExceptionMatches</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="115" /><span class="True">     115:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">int</span><span class="f">)</span> <span class="b">PyErr_ExceptionMatches</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="116" /><span class="True">     116:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">void</span><span class="f">)</span> <span class="b">PyErr_NormalizeException</span><span class="f">(</span><span class="b">PyObject</span><span class="f">*</span><span class="f">*</span><span class="f">,</span> <span class="b">PyObject</span><span class="f">*</span><span class="f">*</span><span class="f">,</span> <span class="b">PyObject</span><span class="f">*</span><span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="117" /><span class="True">     117:</span> 
<a name="118" /><span class="True">     118:</span> <span class="k">/* Traceback manipulation (PEP 3134) */</span>
<a name="119" /><span class="True">     119:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">int</span><span class="f">)</span> <span class="b">PyException_SetTraceback</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="120" /><span class="True">     120:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyException_GetTraceback</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="121" /><span class="True">     121:</span> 
<a name="122" /><span class="True">     122:</span> <span class="k">/* Cause manipulation (PEP 3134) */</span>
<a name="123" /><span class="True">     123:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyException_GetCause</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="124" /><span class="True">     124:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">void</span><span class="f">)</span> <span class="b">PyException_SetCause</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="125" /><span class="True">     125:</span> 
<a name="126" /><span class="True">     126:</span> <span class="k">/* Context manipulation (PEP 3134) */</span>
<a name="127" /><span class="True">     127:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyException_GetContext</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="128" /><span class="True">     128:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">void</span><span class="f">)</span> <span class="b">PyException_SetContext</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="129" /><span class="True">     129:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">Py_LIMITED_API</span>
<a name="130" /><span class="True">     130:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">void</span><span class="f">)</span> <span class="b">_PyErr_ChainExceptions</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="131" /><span class="True">     131:</span> <span class="f">#</span><span class="n">endif</span>
<a name="132" /><span class="True">     132:</span> 
<a name="133" /><span class="True">     133:</span> <span class="k">/* */</span>
<a name="134" /><span class="True">     134:</span> 
<a name="135" /><span class="True">     135:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlFeGNlcHRpb25DbGFzc19DaGVja18w"><span class="b">PyExceptionClass_Check</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span>                                       \
<a name="136" /><span class="True">     136:</span>     <span class="f">(</span><a href="macros_noref.html#_UHlUeXBlX0NoZWNrXzA_"><span class="b">PyType_Check</span></a><span class="f">(</span><span class="f">(</span><span class="b">x</span><span class="f">)</span><span class="f">)</span> <span class="f">&amp;&amp;</span>                                               \
<a name="137" /><span class="True">     137:</span>      <a href="macros_ref.html#_UHlUeXBlX0Zhc3RTdWJjbGFzc18w"><span class="b">PyType_FastSubclass</span></a><span class="f">(</span><span class="f">(</span><span class="b">PyTypeObject</span><span class="f">*</span><span class="f">)</span><span class="f">(</span><span class="b">x</span><span class="f">)</span><span class="f">,</span> <a href="macros_noref.html#_UHlfVFBGTEFHU19CQVNFX0VYQ19TVUJDTEFTU18w"><span class="b">Py_TPFLAGS_BASE_EXC_SUBCLASS</span></a><span class="f">)</span><span class="f">)</span>
<a name="138" /><span class="True">     138:</span> 
<a name="139" /><span class="True">     139:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlFeGNlcHRpb25JbnN0YW5jZV9DaGVja18w"><span class="b">PyExceptionInstance_Check</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span>                    \
<a name="140" /><span class="True">     140:</span>     <a href="macros_ref.html#_UHlUeXBlX0Zhc3RTdWJjbGFzc18w"><span class="b">PyType_FastSubclass</span></a><span class="f">(</span><span class="f">(</span><span class="b">x</span><span class="f">)</span><span class="f">-&gt;</span><span class="b">ob_type</span><span class="f">,</span> <a href="macros_noref.html#_UHlfVFBGTEFHU19CQVNFX0VYQ19TVUJDTEFTU18w"><span class="b">Py_TPFLAGS_BASE_EXC_SUBCLASS</span></a><span class="f">)</span>
<a name="141" /><span class="True">     141:</span> 
<a name="142" /><span class="True">     142:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlFeGNlcHRpb25DbGFzc19OYW1lXzA_"><span class="b">PyExceptionClass_Name</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span> \
<a name="143" /><span class="True">     143:</span>      <span class="f">(</span><span class="f">(</span><span class="m">char</span> <span class="f">*</span><span class="f">)</span><span class="f">(</span><span class="f">(</span><span class="f">(</span><span class="b">PyTypeObject</span><span class="f">*</span><span class="f">)</span><span class="f">(</span><span class="b">x</span><span class="f">)</span><span class="f">)</span><span class="f">-&gt;</span><span class="b">tp_name</span><span class="f">)</span><span class="f">)</span>
<a name="144" /><span class="True">     144:</span> 
<a name="145" /><span class="True">     145:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlFeGNlcHRpb25JbnN0YW5jZV9DbGFzc18w"><span class="b">PyExceptionInstance_Class</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span> <span class="f">(</span><span class="f">(</span><span class="b">PyObject</span><span class="f">*</span><span class="f">)</span><span class="f">(</span><span class="f">(</span><span class="b">x</span><span class="f">)</span><span class="f">-&gt;</span><span class="b">ob_type</span><span class="f">)</span><span class="f">)</span>
<a name="146" /><span class="True">     146:</span> 
<a name="147" /><span class="True">     147:</span> 
<a name="148" /><span class="True">     148:</span> <span class="k">/* Predefined exceptions */</span>
<a name="149" /><span class="True">     149:</span> 
<a name="150" /><span class="True">     150:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_BaseException</span><span class="f">;</span>
<a name="151" /><span class="True">     151:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_Exception</span><span class="f">;</span>
<a name="152" /><span class="True">     152:</span> <span class="f">#</span><span class="n">if</span> <span class="f">!</span><span class="b">defined</span><span class="f">(</span><span class="b">Py_LIMITED_API</span><span class="f">)</span> <span class="f">||</span> <span class="b">Py_LIMITED_API</span><span class="f">+</span><span class="c">0</span> <span class="f">&gt;=</span> <span class="c">0x03050000</span>
<a name="153" /><span class="True">     153:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_StopAsyncIteration</span><span class="f">;</span>
<a name="154" /><span class="True">     154:</span> <span class="f">#</span><span class="n">endif</span>
<a name="155" /><span class="True">     155:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_StopIteration</span><span class="f">;</span>
<a name="156" /><span class="True">     156:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_GeneratorExit</span><span class="f">;</span>
<a name="157" /><span class="True">     157:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_ArithmeticError</span><span class="f">;</span>
<a name="158" /><span class="True">     158:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_LookupError</span><span class="f">;</span>
<a name="159" /><span class="True">     159:</span> 
<a name="160" /><span class="True">     160:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_AssertionError</span><span class="f">;</span>
<a name="161" /><span class="True">     161:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_AttributeError</span><span class="f">;</span>
<a name="162" /><span class="True">     162:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_BufferError</span><span class="f">;</span>
<a name="163" /><span class="True">     163:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_EOFError</span><span class="f">;</span>
<a name="164" /><span class="True">     164:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_FloatingPointError</span><span class="f">;</span>
<a name="165" /><span class="True">     165:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_OSError</span><span class="f">;</span>
<a name="166" /><span class="True">     166:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_ImportError</span><span class="f">;</span>
<a name="167" /><span class="True">     167:</span> <span class="f">#</span><span class="n">if</span> <span class="f">!</span><span class="b">defined</span><span class="f">(</span><span class="b">Py_LIMITED_API</span><span class="f">)</span> <span class="f">||</span> <span class="b">Py_LIMITED_API</span><span class="f">+</span><span class="c">0</span> <span class="f">&gt;=</span> <span class="c">0x03060000</span>
<a name="168" /><span class="True">     168:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_ModuleNotFoundError</span><span class="f">;</span>
<a name="169" /><span class="True">     169:</span> <span class="f">#</span><span class="n">endif</span>
<a name="170" /><span class="True">     170:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_IndexError</span><span class="f">;</span>
<a name="171" /><span class="True">     171:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_KeyError</span><span class="f">;</span>
<a name="172" /><span class="True">     172:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_KeyboardInterrupt</span><span class="f">;</span>
<a name="173" /><span class="True">     173:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_MemoryError</span><span class="f">;</span>
<a name="174" /><span class="True">     174:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_NameError</span><span class="f">;</span>
<a name="175" /><span class="True">     175:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_OverflowError</span><span class="f">;</span>
<a name="176" /><span class="True">     176:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_RuntimeError</span><span class="f">;</span>
<a name="177" /><span class="True">     177:</span> <span class="f">#</span><span class="n">if</span> <span class="f">!</span><span class="b">defined</span><span class="f">(</span><span class="b">Py_LIMITED_API</span><span class="f">)</span> <span class="f">||</span> <span class="b">Py_LIMITED_API</span><span class="f">+</span><span class="c">0</span> <span class="f">&gt;=</span> <span class="c">0x03050000</span>
<a name="178" /><span class="True">     178:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_RecursionError</span><span class="f">;</span>
<a name="179" /><span class="True">     179:</span> <span class="f">#</span><span class="n">endif</span>
<a name="180" /><span class="True">     180:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_NotImplementedError</span><span class="f">;</span>
<a name="181" /><span class="True">     181:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_SyntaxError</span><span class="f">;</span>
<a name="182" /><span class="True">     182:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_IndentationError</span><span class="f">;</span>
<a name="183" /><span class="True">     183:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_TabError</span><span class="f">;</span>
<a name="184" /><span class="True">     184:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_ReferenceError</span><span class="f">;</span>
<a name="185" /><span class="True">     185:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_SystemError</span><span class="f">;</span>
<a name="186" /><span class="True">     186:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_SystemExit</span><span class="f">;</span>
<a name="187" /><span class="True">     187:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_TypeError</span><span class="f">;</span>
<a name="188" /><span class="True">     188:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_UnboundLocalError</span><span class="f">;</span>
<a name="189" /><span class="True">     189:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_UnicodeError</span><span class="f">;</span>
<a name="190" /><span class="True">     190:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_UnicodeEncodeError</span><span class="f">;</span>
<a name="191" /><span class="True">     191:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_UnicodeDecodeError</span><span class="f">;</span>
<a name="192" /><span class="True">     192:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_UnicodeTranslateError</span><span class="f">;</span>
<a name="193" /><span class="True">     193:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_ValueError</span><span class="f">;</span>
<a name="194" /><span class="True">     194:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_ZeroDivisionError</span><span class="f">;</span>
<a name="195" /><span class="True">     195:</span> 
<a name="196" /><span class="True">     196:</span> <span class="f">#</span><span class="n">if</span> <span class="f">!</span><span class="b">defined</span><span class="f">(</span><span class="b">Py_LIMITED_API</span><span class="f">)</span> <span class="f">||</span> <span class="b">Py_LIMITED_API</span><span class="f">+</span><span class="c">0</span> <span class="f">&gt;=</span> <span class="c">0x03030000</span>
<a name="197" /><span class="True">     197:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_BlockingIOError</span><span class="f">;</span>
<a name="198" /><span class="True">     198:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_BrokenPipeError</span><span class="f">;</span>
<a name="199" /><span class="True">     199:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_ChildProcessError</span><span class="f">;</span>
<a name="200" /><span class="True">     200:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_ConnectionError</span><span class="f">;</span>
<a name="201" /><span class="True">     201:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_ConnectionAbortedError</span><span class="f">;</span>
<a name="202" /><span class="True">     202:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_ConnectionRefusedError</span><span class="f">;</span>
<a name="203" /><span class="True">     203:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_ConnectionResetError</span><span class="f">;</span>
<a name="204" /><span class="True">     204:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_FileExistsError</span><span class="f">;</span>
<a name="205" /><span class="True">     205:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_FileNotFoundError</span><span class="f">;</span>
<a name="206" /><span class="True">     206:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_InterruptedError</span><span class="f">;</span>
<a name="207" /><span class="True">     207:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_IsADirectoryError</span><span class="f">;</span>
<a name="208" /><span class="True">     208:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_NotADirectoryError</span><span class="f">;</span>
<a name="209" /><span class="True">     209:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_PermissionError</span><span class="f">;</span>
<a name="210" /><span class="True">     210:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_ProcessLookupError</span><span class="f">;</span>
<a name="211" /><span class="True">     211:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_TimeoutError</span><span class="f">;</span>
<a name="212" /><span class="True">     212:</span> <span class="f">#</span><span class="n">endif</span>
<a name="213" /><span class="True">     213:</span> 
<a name="214" /><span class="True">     214:</span> 
<a name="215" /><span class="True">     215:</span> <span class="k">/* Compatibility aliases */</span>
<a name="216" /><span class="True">     216:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_EnvironmentError</span><span class="f">;</span>
<a name="217" /><span class="True">     217:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_IOError</span><span class="f">;</span>
<a name="218" /><span class="False">     218:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">MS_WINDOWS</span>
<a name="219" /><span class="False">     219:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_WindowsError</span><span class="f">;</span>
<a name="220" /><span class="True">     220:</span> <span class="f">#</span><span class="n">endif</span>
<a name="221" /><span class="True">     221:</span> 
<a name="222" /><span class="True">     222:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_RecursionErrorInst</span><span class="f">;</span>
<a name="223" /><span class="True">     223:</span> 
<a name="224" /><span class="True">     224:</span> <span class="k">/* Predefined warning categories */</span>
<a name="225" /><span class="True">     225:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_Warning</span><span class="f">;</span>
<a name="226" /><span class="True">     226:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_UserWarning</span><span class="f">;</span>
<a name="227" /><span class="True">     227:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_DeprecationWarning</span><span class="f">;</span>
<a name="228" /><span class="True">     228:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_PendingDeprecationWarning</span><span class="f">;</span>
<a name="229" /><span class="True">     229:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_SyntaxWarning</span><span class="f">;</span>
<a name="230" /><span class="True">     230:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_RuntimeWarning</span><span class="f">;</span>
<a name="231" /><span class="True">     231:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_FutureWarning</span><span class="f">;</span>
<a name="232" /><span class="True">     232:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_ImportWarning</span><span class="f">;</span>
<a name="233" /><span class="True">     233:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_UnicodeWarning</span><span class="f">;</span>
<a name="234" /><span class="True">     234:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_BytesWarning</span><span class="f">;</span>
<a name="235" /><span class="True">     235:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyExc_ResourceWarning</span><span class="f">;</span>
<a name="236" /><span class="True">     236:</span> 
<a name="237" /><span class="True">     237:</span> 
<a name="238" /><span class="True">     238:</span> <span class="k">/* Convenience functions */</span>
<a name="239" /><span class="True">     239:</span> 
<a name="240" /><span class="True">     240:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">int</span><span class="f">)</span> <span class="b">PyErr_BadArgument</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="241" /><span class="True">     241:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyErr_NoMemory</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="242" /><span class="True">     242:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyErr_SetFromErrno</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="243" /><span class="True">     243:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyErr_SetFromErrnoWithFilenameObject</span><span class="f">(</span>
<a name="244" /><span class="True">     244:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="245" /><span class="True">     245:</span> <span class="f">#</span><span class="n">if</span> <span class="f">!</span><span class="b">defined</span><span class="f">(</span><span class="b">Py_LIMITED_API</span><span class="f">)</span> <span class="f">||</span> <span class="b">Py_LIMITED_API</span><span class="f">+</span><span class="c">0</span> <span class="f">&gt;=</span> <span class="c">0x03040000</span>
<a name="246" /><span class="True">     246:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyErr_SetFromErrnoWithFilenameObjects</span><span class="f">(</span>
<a name="247" /><span class="True">     247:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="248" /><span class="True">     248:</span> <span class="f">#</span><span class="n">endif</span>
<a name="249" /><span class="True">     249:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyErr_SetFromErrnoWithFilename</span><span class="f">(</span>
<a name="250" /><span class="True">     250:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">exc</span><span class="f">,</span>
<a name="251" /><span class="True">     251:</span>     <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">filename</span>   <span class="k">/* decoded from the filesystem encoding */</span>
<a name="252" /><span class="True">     252:</span>     <span class="f">)</span><span class="f">;</span>
<a name="253" /><span class="False">     253:</span> <span class="f">#</span><span class="n">if</span> <span class="b">defined</span><span class="f">(</span><span class="b">MS_WINDOWS</span><span class="f">)</span> <span class="f">&amp;&amp;</span> <span class="f">!</span><span class="b">defined</span><span class="f">(</span><span class="b">Py_LIMITED_API</span><span class="f">)</span>
<a name="254" /><span class="False">     254:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyErr_SetFromErrnoWithUnicodeFilename</span><span class="f">(</span>
<a name="255" /><span class="False">     255:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="m">const</span> <span class="b">Py_UNICODE</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="256" /><span class="True">     256:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* MS_WINDOWS */</span>
<a name="257" /><span class="True">     257:</span> 
<a name="258" /><span class="True">     258:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyErr_Format</span><span class="f">(</span>
<a name="259" /><span class="True">     259:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">exception</span><span class="f">,</span>
<a name="260" /><span class="True">     260:</span>     <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">format</span><span class="f">,</span>   <span class="k">/* ASCII-encoded string  */</span>
<a name="261" /><span class="True">     261:</span>     <span class="f">...</span>
<a name="262" /><span class="True">     262:</span>     <span class="f">)</span><span class="f">;</span>
<a name="263" /><span class="True">     263:</span> <span class="f">#</span><span class="n">if</span> <span class="f">!</span><span class="b">defined</span><span class="f">(</span><span class="b">Py_LIMITED_API</span><span class="f">)</span> <span class="f">||</span> <span class="b">Py_LIMITED_API</span><span class="f">+</span><span class="c">0</span> <span class="f">&gt;=</span> <span class="c">0x03050000</span>
<a name="264" /><span class="True">     264:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyErr_FormatV</span><span class="f">(</span>
<a name="265" /><span class="True">     265:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">exception</span><span class="f">,</span>
<a name="266" /><span class="True">     266:</span>     <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">format</span><span class="f">,</span>
<a name="267" /><span class="True">     267:</span>     <span class="b">va_list</span> <span class="b">vargs</span><span class="f">)</span><span class="f">;</span>
<a name="268" /><span class="True">     268:</span> <span class="f">#</span><span class="n">endif</span>
<a name="269" /><span class="True">     269:</span> 
<a name="270" /><span class="True">     270:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">Py_LIMITED_API</span>
<a name="271" /><span class="True">     271:</span> <span class="k">/* Like PyErr_Format(), but saves current exception as __context__ and</span>
<a name="272" /><span class="True">     272:</span> <span class="k">   __cause__.</span>
<a name="273" /><span class="True">     273:</span> <span class="k"> */</span>
<a name="274" /><span class="True">     274:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">_PyErr_FormatFromCause</span><span class="f">(</span>
<a name="275" /><span class="True">     275:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">exception</span><span class="f">,</span>
<a name="276" /><span class="True">     276:</span>     <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">format</span><span class="f">,</span>   <span class="k">/* ASCII-encoded string  */</span>
<a name="277" /><span class="True">     277:</span>     <span class="f">...</span>
<a name="278" /><span class="True">     278:</span>     <span class="f">)</span><span class="f">;</span>
<a name="279" /><span class="True">     279:</span> <span class="f">#</span><span class="n">endif</span>
<a name="280" /><span class="True">     280:</span> 
<a name="281" /><span class="False">     281:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">MS_WINDOWS</span>
<a name="282" /><span class="False">     282:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyErr_SetFromWindowsErrWithFilename</span><span class="f">(</span>
<a name="283" /><span class="False">     283:</span>     <span class="m">int</span> <span class="b">ierr</span><span class="f">,</span>
<a name="284" /><span class="False">     284:</span>     <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">filename</span>        <span class="k">/* decoded from the filesystem encoding */</span>
<a name="285" /><span class="False">     285:</span>     <span class="f">)</span><span class="f">;</span>
<a name="286" /><span class="False">     286:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">Py_LIMITED_API</span>
<a name="287" /><span class="False">     287:</span> <span class="k">/* XXX redeclare to use WSTRING */</span>
<a name="288" /><span class="False">     288:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyErr_SetFromWindowsErrWithUnicodeFilename</span><span class="f">(</span>
<a name="289" /><span class="False">     289:</span>     <span class="m">int</span><span class="f">,</span> <span class="m">const</span> <span class="b">Py_UNICODE</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="290" /><span class="False">     290:</span> <span class="f">#</span><span class="n">endif</span>
<a name="291" /><span class="False">     291:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyErr_SetFromWindowsErr</span><span class="f">(</span><span class="m">int</span><span class="f">)</span><span class="f">;</span>
<a name="292" /><span class="False">     292:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyErr_SetExcFromWindowsErrWithFilenameObject</span><span class="f">(</span>
<a name="293" /><span class="False">     293:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span><span class="m">int</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="294" /><span class="False">     294:</span> <span class="f">#</span><span class="n">if</span> <span class="f">!</span><span class="b">defined</span><span class="f">(</span><span class="b">Py_LIMITED_API</span><span class="f">)</span> <span class="f">||</span> <span class="b">Py_LIMITED_API</span><span class="f">+</span><span class="c">0</span> <span class="f">&gt;=</span> <span class="c">0x03040000</span>
<a name="295" /><span class="False">     295:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyErr_SetExcFromWindowsErrWithFilenameObjects</span><span class="f">(</span>
<a name="296" /><span class="False">     296:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span><span class="m">int</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="297" /><span class="False">     297:</span> <span class="f">#</span><span class="n">endif</span>
<a name="298" /><span class="False">     298:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyErr_SetExcFromWindowsErrWithFilename</span><span class="f">(</span>
<a name="299" /><span class="False">     299:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">exc</span><span class="f">,</span>
<a name="300" /><span class="False">     300:</span>     <span class="m">int</span> <span class="b">ierr</span><span class="f">,</span>
<a name="301" /><span class="False">     301:</span>     <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">filename</span>        <span class="k">/* decoded from the filesystem encoding */</span>
<a name="302" /><span class="False">     302:</span>     <span class="f">)</span><span class="f">;</span>
<a name="303" /><span class="False">     303:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">Py_LIMITED_API</span>
<a name="304" /><span class="False">     304:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyErr_SetExcFromWindowsErrWithUnicodeFilename</span><span class="f">(</span>
<a name="305" /><span class="False">     305:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span><span class="m">int</span><span class="f">,</span> <span class="m">const</span> <span class="b">Py_UNICODE</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="306" /><span class="False">     306:</span> <span class="f">#</span><span class="n">endif</span>
<a name="307" /><span class="False">     307:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyErr_SetExcFromWindowsErr</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="m">int</span><span class="f">)</span><span class="f">;</span>
<a name="308" /><span class="True">     308:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* MS_WINDOWS */</span>
<a name="309" /><span class="True">     309:</span> 
<a name="310" /><span class="True">     310:</span> <span class="f">#</span><span class="n">if</span> <span class="f">!</span><span class="b">defined</span><span class="f">(</span><span class="b">Py_LIMITED_API</span><span class="f">)</span> <span class="f">||</span> <span class="b">Py_LIMITED_API</span><span class="f">+</span><span class="c">0</span> <span class="f">&gt;=</span> <span class="c">0x03060000</span>
<a name="311" /><span class="True">     311:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyErr_SetImportErrorSubclass</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span>
<a name="312" /><span class="True">     312:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="313" /><span class="True">     313:</span> <span class="f">#</span><span class="n">endif</span>
<a name="314" /><span class="True">     314:</span> <span class="f">#</span><span class="n">if</span> <span class="f">!</span><span class="b">defined</span><span class="f">(</span><span class="b">Py_LIMITED_API</span><span class="f">)</span> <span class="f">||</span> <span class="b">Py_LIMITED_API</span><span class="f">+</span><span class="c">0</span> <span class="f">&gt;=</span> <span class="c">0x03030000</span>
<a name="315" /><span class="True">     315:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyErr_SetImportError</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span>
<a name="316" /><span class="True">     316:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="317" /><span class="True">     317:</span> <span class="f">#</span><span class="n">endif</span>
<a name="318" /><span class="True">     318:</span> 
<a name="319" /><span class="True">     319:</span> <span class="k">/* Export the old function so that the existing API remains available: */</span>
<a name="320" /><span class="True">     320:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">void</span><span class="f">)</span> <a href="macros_ref.html#_UHlFcnJfQmFkSW50ZXJuYWxDYWxsXzA_"><span class="b">PyErr_BadInternalCall</span></a><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="321" /><span class="True">     321:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">void</span><span class="f">)</span> <span class="b">_PyErr_BadInternalCall</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">filename</span><span class="f">,</span> <span class="m">int</span> <span class="b">lineno</span><span class="f">)</span><span class="f">;</span>
<a name="322" /><span class="True">     322:</span> <span class="k">/* Mask the old API with a call to the new API for code compiled under</span>
<a name="323" /><span class="True">     323:</span> <span class="k">   Python 2.0: */</span>
<a name="324" /><span class="True">     324:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_ref.html#_UHlFcnJfQmFkSW50ZXJuYWxDYWxsXzA_"><span class="b">PyErr_BadInternalCall</span></a><span class="f">(</span><span class="f">)</span> <span class="b">_PyErr_BadInternalCall</span><span class="f">(</span><span class="b">__FILE__</span><span class="f">,</span> <span class="b">__LINE__</span><span class="f">)</span>
<a name="325" /><span class="True">     325:</span> 
<a name="326" /><span class="True">     326:</span> <span class="k">/* Function to create a new exception */</span>
<a name="327" /><span class="True">     327:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyErr_NewException</span><span class="f">(</span>
<a name="328" /><span class="True">     328:</span>     <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">name</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="b">base</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="b">dict</span><span class="f">)</span><span class="f">;</span>
<a name="329" /><span class="True">     329:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyErr_NewExceptionWithDoc</span><span class="f">(</span>
<a name="330" /><span class="True">     330:</span>     <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">name</span><span class="f">,</span> <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">doc</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="b">base</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="b">dict</span><span class="f">)</span><span class="f">;</span>
<a name="331" /><span class="True">     331:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">void</span><span class="f">)</span> <span class="b">PyErr_WriteUnraisable</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="332" /><span class="True">     332:</span> 
<a name="333" /><span class="True">     333:</span> <span class="k">/* In exceptions.c */</span>
<a name="334" /><span class="True">     334:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">Py_LIMITED_API</span>
<a name="335" /><span class="True">     335:</span> <span class="k">/* Helper that attempts to replace the current exception with one of the</span>
<a name="336" /><span class="True">     336:</span> <span class="k"> * same type but with a prefix added to the exception text. The resulting</span>
<a name="337" /><span class="True">     337:</span> <span class="k"> * exception description looks like:</span>
<a name="338" /><span class="True">     338:</span> <span class="k"> *</span>
<a name="339" /><span class="True">     339:</span> <span class="k"> *     prefix (exc_type: original_exc_str)</span>
<a name="340" /><span class="True">     340:</span> <span class="k"> *</span>
<a name="341" /><span class="True">     341:</span> <span class="k"> * Only some exceptions can be safely replaced. If the function determines</span>
<a name="342" /><span class="True">     342:</span> <span class="k"> * it isn&apos;t safe to perform the replacement, it will leave the original</span>
<a name="343" /><span class="True">     343:</span> <span class="k"> * unmodified exception in place.</span>
<a name="344" /><span class="True">     344:</span> <span class="k"> *</span>
<a name="345" /><span class="True">     345:</span> <span class="k"> * Returns a borrowed reference to the new exception (if any), NULL if the</span>
<a name="346" /><span class="True">     346:</span> <span class="k"> * existing exception was left in place.</span>
<a name="347" /><span class="True">     347:</span> <span class="k"> */</span>
<a name="348" /><span class="True">     348:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">_PyErr_TrySetFromCause</span><span class="f">(</span>
<a name="349" /><span class="True">     349:</span>     <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">prefix_format</span><span class="f">,</span>   <span class="k">/* ASCII-encoded string  */</span>
<a name="350" /><span class="True">     350:</span>     <span class="f">...</span>
<a name="351" /><span class="True">     351:</span>     <span class="f">)</span><span class="f">;</span>
<a name="352" /><span class="True">     352:</span> <span class="f">#</span><span class="n">endif</span>
<a name="353" /><span class="True">     353:</span> 
<a name="354" /><span class="True">     354:</span> 
<a name="355" /><span class="True">     355:</span> <span class="k">/* In sigcheck.c or signalmodule.c */</span>
<a name="356" /><span class="True">     356:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">int</span><span class="f">)</span> <span class="b">PyErr_CheckSignals</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="357" /><span class="True">     357:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">void</span><span class="f">)</span> <span class="b">PyErr_SetInterrupt</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="358" /><span class="True">     358:</span> 
<a name="359" /><span class="True">     359:</span> <span class="k">/* In signalmodule.c */</span>
<a name="360" /><span class="True">     360:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">Py_LIMITED_API</span>
<a name="361" /><span class="True">     361:</span> <span class="m">int</span> <span class="b">PySignal_SetWakeupFd</span><span class="f">(</span><span class="m">int</span> <span class="b">fd</span><span class="f">)</span><span class="f">;</span>
<a name="362" /><span class="True">     362:</span> <span class="f">#</span><span class="n">endif</span>
<a name="363" /><span class="True">     363:</span> 
<a name="364" /><span class="True">     364:</span> <span class="k">/* Support for adding program text to SyntaxErrors */</span>
<a name="365" /><span class="True">     365:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">void</span><span class="f">)</span> <span class="b">PyErr_SyntaxLocation</span><span class="f">(</span>
<a name="366" /><span class="True">     366:</span>     <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">filename</span><span class="f">,</span>       <span class="k">/* decoded from the filesystem encoding */</span>
<a name="367" /><span class="True">     367:</span>     <span class="m">int</span> <span class="b">lineno</span><span class="f">)</span><span class="f">;</span>
<a name="368" /><span class="True">     368:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">void</span><span class="f">)</span> <span class="b">PyErr_SyntaxLocationEx</span><span class="f">(</span>
<a name="369" /><span class="True">     369:</span>     <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">filename</span><span class="f">,</span>       <span class="k">/* decoded from the filesystem encoding */</span>
<a name="370" /><span class="True">     370:</span>     <span class="m">int</span> <span class="b">lineno</span><span class="f">,</span>
<a name="371" /><span class="True">     371:</span>     <span class="m">int</span> <span class="b">col_offset</span><span class="f">)</span><span class="f">;</span>
<a name="372" /><span class="True">     372:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">Py_LIMITED_API</span>
<a name="373" /><span class="True">     373:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">void</span><span class="f">)</span> <span class="b">PyErr_SyntaxLocationObject</span><span class="f">(</span>
<a name="374" /><span class="True">     374:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">filename</span><span class="f">,</span>
<a name="375" /><span class="True">     375:</span>     <span class="m">int</span> <span class="b">lineno</span><span class="f">,</span>
<a name="376" /><span class="True">     376:</span>     <span class="m">int</span> <span class="b">col_offset</span><span class="f">)</span><span class="f">;</span>
<a name="377" /><span class="True">     377:</span> <span class="f">#</span><span class="n">endif</span>
<a name="378" /><span class="True">     378:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyErr_ProgramText</span><span class="f">(</span>
<a name="379" /><span class="True">     379:</span>     <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">filename</span><span class="f">,</span>       <span class="k">/* decoded from the filesystem encoding */</span>
<a name="380" /><span class="True">     380:</span>     <span class="m">int</span> <span class="b">lineno</span><span class="f">)</span><span class="f">;</span>
<a name="381" /><span class="True">     381:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">Py_LIMITED_API</span>
<a name="382" /><span class="True">     382:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyErr_ProgramTextObject</span><span class="f">(</span>
<a name="383" /><span class="True">     383:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">filename</span><span class="f">,</span>
<a name="384" /><span class="True">     384:</span>     <span class="m">int</span> <span class="b">lineno</span><span class="f">)</span><span class="f">;</span>
<a name="385" /><span class="True">     385:</span> <span class="f">#</span><span class="n">endif</span>
<a name="386" /><span class="True">     386:</span> 
<a name="387" /><span class="True">     387:</span> <span class="k">/* The following functions are used to create and modify unicode</span>
<a name="388" /><span class="True">     388:</span> <span class="k">   exceptions from C */</span>
<a name="389" /><span class="True">     389:</span> 
<a name="390" /><span class="True">     390:</span> <span class="k">/* create a UnicodeDecodeError object */</span>
<a name="391" /><span class="True">     391:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyUnicodeDecodeError_Create</span><span class="f">(</span>
<a name="392" /><span class="True">     392:</span>     <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">encoding</span><span class="f">,</span>       <span class="k">/* UTF-8 encoded string */</span>
<a name="393" /><span class="True">     393:</span>     <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">object</span><span class="f">,</span>
<a name="394" /><span class="True">     394:</span>     <span class="b">Py_ssize_t</span> <span class="b">length</span><span class="f">,</span>
<a name="395" /><span class="True">     395:</span>     <span class="b">Py_ssize_t</span> <span class="b">start</span><span class="f">,</span>
<a name="396" /><span class="True">     396:</span>     <span class="b">Py_ssize_t</span> <span class="b">end</span><span class="f">,</span>
<a name="397" /><span class="True">     397:</span>     <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">reason</span>          <span class="k">/* UTF-8 encoded string */</span>
<a name="398" /><span class="True">     398:</span>     <span class="f">)</span><span class="f">;</span>
<a name="399" /><span class="True">     399:</span> 
<a name="400" /><span class="True">     400:</span> <span class="k">/* create a UnicodeEncodeError object */</span>
<a name="401" /><span class="True">     401:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">Py_LIMITED_API</span>
<a name="402" /><span class="True">     402:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyUnicodeEncodeError_Create</span><span class="f">(</span>
<a name="403" /><span class="True">     403:</span>     <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">encoding</span><span class="f">,</span>       <span class="k">/* UTF-8 encoded string */</span>
<a name="404" /><span class="True">     404:</span>     <span class="m">const</span> <span class="b">Py_UNICODE</span> <span class="f">*</span><span class="b">object</span><span class="f">,</span>
<a name="405" /><span class="True">     405:</span>     <span class="b">Py_ssize_t</span> <span class="b">length</span><span class="f">,</span>
<a name="406" /><span class="True">     406:</span>     <span class="b">Py_ssize_t</span> <span class="b">start</span><span class="f">,</span>
<a name="407" /><span class="True">     407:</span>     <span class="b">Py_ssize_t</span> <span class="b">end</span><span class="f">,</span>
<a name="408" /><span class="True">     408:</span>     <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">reason</span>          <span class="k">/* UTF-8 encoded string */</span>
<a name="409" /><span class="True">     409:</span>     <span class="f">)</span><span class="f">;</span>
<a name="410" /><span class="True">     410:</span> <span class="f">#</span><span class="n">endif</span>
<a name="411" /><span class="True">     411:</span> 
<a name="412" /><span class="True">     412:</span> <span class="k">/* create a UnicodeTranslateError object */</span>
<a name="413" /><span class="True">     413:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">Py_LIMITED_API</span>
<a name="414" /><span class="True">     414:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyUnicodeTranslateError_Create</span><span class="f">(</span>
<a name="415" /><span class="True">     415:</span>     <span class="m">const</span> <span class="b">Py_UNICODE</span> <span class="f">*</span><span class="b">object</span><span class="f">,</span>
<a name="416" /><span class="True">     416:</span>     <span class="b">Py_ssize_t</span> <span class="b">length</span><span class="f">,</span>
<a name="417" /><span class="True">     417:</span>     <span class="b">Py_ssize_t</span> <span class="b">start</span><span class="f">,</span>
<a name="418" /><span class="True">     418:</span>     <span class="b">Py_ssize_t</span> <span class="b">end</span><span class="f">,</span>
<a name="419" /><span class="True">     419:</span>     <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">reason</span>          <span class="k">/* UTF-8 encoded string */</span>
<a name="420" /><span class="True">     420:</span>     <span class="f">)</span><span class="f">;</span>
<a name="421" /><span class="True">     421:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">_PyUnicodeTranslateError_Create</span><span class="f">(</span>
<a name="422" /><span class="True">     422:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">object</span><span class="f">,</span>
<a name="423" /><span class="True">     423:</span>     <span class="b">Py_ssize_t</span> <span class="b">start</span><span class="f">,</span>
<a name="424" /><span class="True">     424:</span>     <span class="b">Py_ssize_t</span> <span class="b">end</span><span class="f">,</span>
<a name="425" /><span class="True">     425:</span>     <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">reason</span>          <span class="k">/* UTF-8 encoded string */</span>
<a name="426" /><span class="True">     426:</span>     <span class="f">)</span><span class="f">;</span>
<a name="427" /><span class="True">     427:</span> <span class="f">#</span><span class="n">endif</span>
<a name="428" /><span class="True">     428:</span> 
<a name="429" /><span class="True">     429:</span> <span class="k">/* get the encoding attribute */</span>
<a name="430" /><span class="True">     430:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyUnicodeEncodeError_GetEncoding</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="431" /><span class="True">     431:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyUnicodeDecodeError_GetEncoding</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="432" /><span class="True">     432:</span> 
<a name="433" /><span class="True">     433:</span> <span class="k">/* get the object attribute */</span>
<a name="434" /><span class="True">     434:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyUnicodeEncodeError_GetObject</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="435" /><span class="True">     435:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyUnicodeDecodeError_GetObject</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="436" /><span class="True">     436:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyUnicodeTranslateError_GetObject</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="437" /><span class="True">     437:</span> 
<a name="438" /><span class="True">     438:</span> <span class="k">/* get the value of the start attribute (the int * may not be NULL)</span>
<a name="439" /><span class="True">     439:</span> <span class="k">   return 0 on success, -1 on failure */</span>
<a name="440" /><span class="True">     440:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">int</span><span class="f">)</span> <span class="b">PyUnicodeEncodeError_GetStart</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">Py_ssize_t</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="441" /><span class="True">     441:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">int</span><span class="f">)</span> <span class="b">PyUnicodeDecodeError_GetStart</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">Py_ssize_t</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="442" /><span class="True">     442:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">int</span><span class="f">)</span> <span class="b">PyUnicodeTranslateError_GetStart</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">Py_ssize_t</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="443" /><span class="True">     443:</span> 
<a name="444" /><span class="True">     444:</span> <span class="k">/* assign a new value to the start attribute</span>
<a name="445" /><span class="True">     445:</span> <span class="k">   return 0 on success, -1 on failure */</span>
<a name="446" /><span class="True">     446:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">int</span><span class="f">)</span> <span class="b">PyUnicodeEncodeError_SetStart</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">Py_ssize_t</span><span class="f">)</span><span class="f">;</span>
<a name="447" /><span class="True">     447:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">int</span><span class="f">)</span> <span class="b">PyUnicodeDecodeError_SetStart</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">Py_ssize_t</span><span class="f">)</span><span class="f">;</span>
<a name="448" /><span class="True">     448:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">int</span><span class="f">)</span> <span class="b">PyUnicodeTranslateError_SetStart</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">Py_ssize_t</span><span class="f">)</span><span class="f">;</span>
<a name="449" /><span class="True">     449:</span> 
<a name="450" /><span class="True">     450:</span> <span class="k">/* get the value of the end attribute (the int *may not be NULL)</span>
<a name="451" /><span class="True">     451:</span> <span class="k"> return 0 on success, -1 on failure */</span>
<a name="452" /><span class="True">     452:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">int</span><span class="f">)</span> <span class="b">PyUnicodeEncodeError_GetEnd</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">Py_ssize_t</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="453" /><span class="True">     453:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">int</span><span class="f">)</span> <span class="b">PyUnicodeDecodeError_GetEnd</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">Py_ssize_t</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="454" /><span class="True">     454:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">int</span><span class="f">)</span> <span class="b">PyUnicodeTranslateError_GetEnd</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">Py_ssize_t</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="455" /><span class="True">     455:</span> 
<a name="456" /><span class="True">     456:</span> <span class="k">/* assign a new value to the end attribute</span>
<a name="457" /><span class="True">     457:</span> <span class="k">   return 0 on success, -1 on failure */</span>
<a name="458" /><span class="True">     458:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">int</span><span class="f">)</span> <span class="b">PyUnicodeEncodeError_SetEnd</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">Py_ssize_t</span><span class="f">)</span><span class="f">;</span>
<a name="459" /><span class="True">     459:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">int</span><span class="f">)</span> <span class="b">PyUnicodeDecodeError_SetEnd</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">Py_ssize_t</span><span class="f">)</span><span class="f">;</span>
<a name="460" /><span class="True">     460:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">int</span><span class="f">)</span> <span class="b">PyUnicodeTranslateError_SetEnd</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">,</span> <span class="b">Py_ssize_t</span><span class="f">)</span><span class="f">;</span>
<a name="461" /><span class="True">     461:</span> 
<a name="462" /><span class="True">     462:</span> <span class="k">/* get the value of the reason attribute */</span>
<a name="463" /><span class="True">     463:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyUnicodeEncodeError_GetReason</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="464" /><span class="True">     464:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyUnicodeDecodeError_GetReason</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="465" /><span class="True">     465:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyUnicodeTranslateError_GetReason</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="466" /><span class="True">     466:</span> 
<a name="467" /><span class="True">     467:</span> <span class="k">/* assign a new value to the reason attribute</span>
<a name="468" /><span class="True">     468:</span> <span class="k">   return 0 on success, -1 on failure */</span>
<a name="469" /><span class="True">     469:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">int</span><span class="f">)</span> <span class="b">PyUnicodeEncodeError_SetReason</span><span class="f">(</span>
<a name="470" /><span class="True">     470:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">exc</span><span class="f">,</span>
<a name="471" /><span class="True">     471:</span>     <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">reason</span>          <span class="k">/* UTF-8 encoded string */</span>
<a name="472" /><span class="True">     472:</span>     <span class="f">)</span><span class="f">;</span>
<a name="473" /><span class="True">     473:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">int</span><span class="f">)</span> <span class="b">PyUnicodeDecodeError_SetReason</span><span class="f">(</span>
<a name="474" /><span class="True">     474:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">exc</span><span class="f">,</span>
<a name="475" /><span class="True">     475:</span>     <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">reason</span>          <span class="k">/* UTF-8 encoded string */</span>
<a name="476" /><span class="True">     476:</span>     <span class="f">)</span><span class="f">;</span>
<a name="477" /><span class="True">     477:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">int</span><span class="f">)</span> <span class="b">PyUnicodeTranslateError_SetReason</span><span class="f">(</span>
<a name="478" /><span class="True">     478:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">exc</span><span class="f">,</span>
<a name="479" /><span class="True">     479:</span>     <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">reason</span>          <span class="k">/* UTF-8 encoded string */</span>
<a name="480" /><span class="True">     480:</span>     <span class="f">)</span><span class="f">;</span>
<a name="481" /><span class="True">     481:</span> 
<a name="482" /><span class="True">     482:</span> <span class="k">/* These APIs aren&apos;t really part of the error implementation, but</span>
<a name="483" /><span class="True">     483:</span> <span class="k">   often needed to format error messages; the native C lib APIs are</span>
<a name="484" /><span class="True">     484:</span> <span class="k">   not available on all platforms, which is why we provide emulations</span>
<a name="485" /><span class="True">     485:</span> <span class="k">   for those platforms in Python/mysnprintf.c,</span>
<a name="486" /><span class="True">     486:</span> <span class="k">   WARNING:  The return value of snprintf varies across platforms; do</span>
<a name="487" /><span class="True">     487:</span> <span class="k">   not rely on any particular behavior; eventually the C99 defn may</span>
<a name="488" /><span class="True">     488:</span> <span class="k">   be reliable.</span>
<a name="489" /><span class="True">     489:</span> <span class="k">*/</span>
<a name="490" /><span class="False">     490:</span> <span class="f">#</span><span class="n">if</span> <span class="b">defined</span><span class="f">(</span><span class="b">MS_WIN32</span><span class="f">)</span> <span class="f">&amp;&amp;</span> <span class="f">!</span><span class="b">defined</span><span class="f">(</span><a href="macros_ref.html#_SEFWRV9TTlBSSU5URl8w"><span class="b">HAVE_SNPRINTF</span></a><span class="f">)</span>
<a name="491" /><span class="False">     491:</span> <span class="f">#</span> <span class="n">define</span> <a href="macros_ref.html#_SEFWRV9TTlBSSU5URl8w"><span class="b">HAVE_SNPRINTF</span></a>
<a name="492" /><span class="False">     492:</span> <span class="f">#</span> <span class="n">define</span> <a href="macros_noref.html#_c25wcmludGZfMA__"><span class="b">snprintf</span></a> <span class="b">_snprintf</span>
<a name="493" /><span class="False">     493:</span> <span class="f">#</span> <span class="n">define</span> <a href="macros_noref.html#_dnNucHJpbnRmXzA_"><span class="b">vsnprintf</span></a> <span class="b">_vsnprintf</span>
<a name="494" /><span class="True">     494:</span> <span class="f">#</span><span class="n">endif</span>
<a name="495" /><span class="True">     495:</span> 
<a name="496" /><span class="True">     496:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">stdarg</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="497" /><span class="True">     497:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">int</span><span class="f">)</span> <span class="b">PyOS_snprintf</span><span class="f">(</span><span class="m">char</span> <span class="f">*</span><span class="b">str</span><span class="f">,</span> <span class="b">size_t</span> <span class="b">size</span><span class="f">,</span> <span class="m">const</span> <span class="m">char</span>  <span class="f">*</span><span class="b">format</span><span class="f">,</span> <span class="f">...</span><span class="f">)</span>
<a name="498" /><span class="True">     498:</span>                         <a href="macros_ref.html#_UHlfR0NDX0FUVFJJQlVURV8w"><span class="b">Py_GCC_ATTRIBUTE</span></a><span class="f">(</span><span class="f">(</span><span class="b">format</span><span class="f">(</span><span class="b">printf</span><span class="f">,</span> <span class="c">3</span><span class="f">,</span> <span class="c">4</span><span class="f">)</span><span class="f">)</span><span class="f">)</span><span class="f">;</span>
<a name="499" /><span class="True">     499:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">int</span><span class="f">)</span> <span class="b">PyOS_vsnprintf</span><span class="f">(</span><span class="m">char</span> <span class="f">*</span><span class="b">str</span><span class="f">,</span> <span class="b">size_t</span> <span class="b">size</span><span class="f">,</span> <span class="m">const</span> <span class="m">char</span>  <span class="f">*</span><span class="b">format</span><span class="f">,</span> <span class="b">va_list</span> <span class="b">va</span><span class="f">)</span>
<a name="500" /><span class="True">     500:</span>                         <a href="macros_ref.html#_UHlfR0NDX0FUVFJJQlVURV8w"><span class="b">Py_GCC_ATTRIBUTE</span></a><span class="f">(</span><span class="f">(</span><span class="b">format</span><span class="f">(</span><span class="b">printf</span><span class="f">,</span> <span class="c">3</span><span class="f">,</span> <span class="c">0</span><span class="f">)</span><span class="f">)</span><span class="f">)</span><span class="f">;</span>
<a name="501" /><span class="True">     501:</span> 
<a name="502" /><span class="False">     502:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">__cplusplus</span>
<a name="503" /><span class="False">     503:</span> <span class="f">}</span>
<a name="504" /><span class="True">     504:</span> <span class="f">#</span><span class="n">endif</span>
<a name="505" /><span class="True">     505:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* !Py_ERRORS_H */</span>
<a name="506" /><span class="True">     506:</span> </pre>
  </body>
</html>
